iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 17
2
Data Technology

你都在公司都在幹啥R? R語言資料分析經驗分享系列 第 17

【17】當老闆突然再再問:喔喔,地址切開是切開了,但是這個k 值我設多少會有差嗎?

  • 分享至 

  • xImage
  •  

沒錯,k 大小值不同,會影響到分類的結果,以下示範不同的k 值會產生什麼樣的結果,下圖分別是k=3、7、10、20在同個種子所分布的狀況,種子碼為20180103。

set.seed(20180103)
kmeans_3 = kmeans(x = address_LatLng_data[, c('Lat','Lng')], centers = 3)
set.seed(20180103)
kmeans_7 = kmeans(x = address_LatLng_data[, c('Lat','Lng')], centers = 7)
set.seed(20180103)
kmeans_10 = kmeans(x = address_LatLng_data[, c('Lat','Lng')], centers = 10)
set.seed(20180103)
kmeans_20 = kmeans(x = address_LatLng_data[, c('Lat','Lng')], centers = 20)

result <- address_LatLng_data %>%
    ungroup() %>%
    mutate(category3 = kmeans_3$cluster,
           category7 = kmeans_7$cluster,
           category10 = kmeans_10$cluster,
           category20 = kmeans_20$cluster)

k=3
https://ithelp.ithome.com.tw/upload/images/20180103/20107299dmlAHqEgc6.png

k=7
https://ithelp.ithome.com.tw/upload/images/20180103/20107299EgeNHtsuNq.png

k=10
https://ithelp.ithome.com.tw/upload/images/20180103/20107299lSix11dfd7.png

k=20
https://ithelp.ithome.com.tw/upload/images/20180103/20107299bTooUCqi58.png

從不同的k 值可以觀察到,當k 值越大時,category 顆粒度可以越細,因此,諾我們使用很大的k,像西門一帶密集的地址區,可能會有些過於分類的現象出現,但如果k使用比較小的數字,有可能會發生像第一張圖的狀況,新北市的地址和台北市的地址是同一類的狀況。

所以這邊反問讀者,你們會如何決定k 的大小呢?

ref
day17原始碼


上一篇
【16】當老闆突然再問:很好,現在地址很明瞭了,但是我想把在附近的地址當成一組做分群,這有辦法嗎?
下一篇
【18】當老闆突然再再再問:蛤..k值好麻煩喔,那你有什麼辦法可以解決地址分類太細或太廣的問題?
系列文
你都在公司都在幹啥R? R語言資料分析經驗分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言